using System;
using ns27;

namespace Triton.Game.Mapping
{
	[Attribute38("ICCPrologueFakeDeath")]
	public class ICCPrologueFakeDeath : Spell
	{
		public enum FakeDeathState
		{
			EXPLODING_JAINA,
			FROST_LICH_JAINA_ENTER,
			LICH_KING_EXIT,
			TIRION_ENTER,
			COMPLETE
		}

		public Spell m_ExplodeReformSpell => method_3<Spell>("m_ExplodeReformSpell");

		public Spell m_LichKingExitSpell => method_3<Spell>("m_LichKingExitSpell");

		public Spell m_TirionEnterSpell => method_3<Spell>("m_TirionEnterSpell");

		public GameObject m_FakeDefeatScreen => method_3<GameObject>("m_FakeDefeatScreen");

		public float m_FakeDefeatScreenShowTime => method_2<float>("m_FakeDefeatScreenShowTime");

		public float m_TirionEnterDelay => method_2<float>("m_TirionEnterDelay");

		public Card m_lichKingCard => method_3<Card>("m_lichKingCard");

		public Card m_tirionCard => method_3<Card>("m_tirionCard");

		public Card m_frostLichJainaCard => method_3<Card>("m_frostLichJainaCard");

		public int m_tirionEnterTaskIndex => method_2<int>("m_tirionEnterTaskIndex");

		public int m_frostLichJainaEnterTaskIndex => method_2<int>("m_frostLichJainaEnterTaskIndex");

		public Spell m_explodeReformSpellInstance => method_3<Spell>("m_explodeReformSpellInstance");

		public ICC_01_LICHKING m_missionEntity => method_3<ICC_01_LICHKING>("m_missionEntity");

		public FakeDeathState m_fakeDeathState => method_2<FakeDeathState>("m_fakeDeathState");

		public ICCPrologueFakeDeath(IntPtr address, string className)
			: base(address, className)
		{
		}

		public ICCPrologueFakeDeath(IntPtr address)
			: this(address, "ICCPrologueFakeDeath")
		{
		}

		public new bool AddPowerTargets()
		{
			return method_11<bool>("AddPowerTargets", Array.Empty<object>());
		}

		public void FindHeroCards()
		{
			method_8("FindHeroCards");
		}

		public new bool CanPurge()
		{
			return method_11<bool>("CanPurge", Array.Empty<object>());
		}

		public new bool ShouldReconnectIfStuck()
		{
			return method_11<bool>("ShouldReconnectIfStuck", Array.Empty<object>());
		}

		public new void OnAction(SpellStateType prevStateType)
		{
			method_8("OnAction", prevStateType);
		}
	}
}
